package com.tushen.mapper;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * 数据通用操作工具类
 * Created by likun on 2018/3/23.
 */
public interface CommonDao {
    /**
     * 返回任意表中的所有记录
     * @param table 表名
     * @return
     */
    List<HashMap> getTableAll(@Param(value="table") String table);
    /**
     * 根据指定条件，指定列返回 表中记录
     * @param table 表名
     * @param whereMap 条件 key value
     * @return
     */
    List<HashMap> selectTable(@Param(value="table") String table,@Param(value = "wheremap") HashMap whereMap);
    /**
     * 根据指定条件，指定列返回 表中记录
     * @param table 表名
     * @param list  列名
     * @param whereMap 条件 key value
     * @return
     */
    List<HashMap> getTableByWhere(@Param(value="table") String table, @Param(value = "list") ArrayList list, @Param(value = "wheremap") HashMap whereMap);

    /**
     * 向任意表中插入内容
     * @param table 表名
     * @param map 值 key 和 value
     */
    void insertTable(@Param(value="table") String table,@Param(value = "content") HashMap map);

    /**
     * 更新任意表中内容
     * @param table 表名
     * @param valueMap 值map
     * @param whereMap 条件map
     */
    void updateTable(@Param(value="table") String table,@Param(value = "valuemap") HashMap valueMap,@Param(value = "wheremap") HashMap whereMap);

    /**
     * 删除任意表中的记录
     * @param table
     * @param whereMap
     */
    void deleteTable(@Param(value="table") String table,@Param(value = "wheremap") HashMap whereMap);

    /**
     * 执行任意sql 语句
     * @param sql sql语句
     */
    List<HashMap> executeSql(@Param(value="sql") String sql);


    List<HashMap> commonQuery(@Param(value = "wheremap") HashMap whereMap);
}
